home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ShareWare OnLine 2
/
ShareWare OnLine Volume 2 (CMS Software)(1993).iso
/
prog
/
fpclib36.zip
/
INCLUDE
/
FPCLIB.H
next >
Wrap
C/C++ Source or Header
|
1993-03-25
|
19KB
|
518 lines
/*--------------------------------------------------------------------
-
--------------------------------------------------------------------*/
#ifndef FPCLIB
#define FPCLIB
/*--------------------------------------------------------------------
-
--------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif
/*--------------------------------------------------------------------
-
--------------------------------------------------------------------*/
#define FAR far
#define PTR far *
#define FPENTRY pascal far
typedef char CHAR; /* signed 8 bits */
typedef unsigned char BYTE; /* unsigned 8 bits */
typedef int INT; /* signed 16 bits */
typedef unsigned int UINT; /* unsigned 16 bits */
typedef signed short int INT2; /* signed 16 bits */
typedef unsigned short int UINT2; /* unsigned 16 bits */
typedef unsigned int WORD; /* unsigned 16 bits */
typedef long INT4; /* signed 32 bits */
typedef unsigned long UINT4; /* unsigned 32 bits */
typedef float REAL4; /* signed 32 bits */
typedef double REAL8; /* unsigned 64 bits */
typedef void VOID;
typedef CHAR PTR PCHAR; /* signed 8 bits */
typedef BYTE PTR PBYTE; /* unsigned 8 bits */
typedef INT PTR PINT; /* signed 16 bits */
typedef UINT PTR PUINT; /* unsigned 16 bits */
typedef INT2 PTR PINT2; /* signed 16 bits */
typedef UINT2 PTR PUINT2; /* unsigned 16 bits */
typedef WORD PTR PWORD; /* unsigned 16 bits */
typedef INT4 PTR PINT4; /* signed 32 bits */
typedef UINT4 PTR PUINT4; /* unsigned 32 bits */
typedef REAL4 PTR PREAL4; /* signed 32 bits */
typedef REAL8 PTR PREAL8; /* unsigned 64 bits */
typedef VOID PTR PVOID;
/*---------------------------------------------------------------------
- Data structure for FindFirst, FindNext
---------------------------------------------------------------------*/
typedef struct TFindRec
{
BYTE Attr;
UINT2 Time;
UINT2 Date;
UINT4 Size;
BYTE Name[13];
} TFindRec;
/*---------------------------------------------------------------------
- Global Variables
---------------------------------------------------------------------*/
extern BYTE pascal CErrDevice[10];
extern BYTE pascal CheckSnow;
extern BYTE pascal TextAttr;
extern INT2 pascal VioMode;
extern INT2 pascal VioPage;
extern INT2 pascal VioCols;
extern INT2 pascal VioCursor;
extern INT2 pascal VioBaseSeg;
extern INT2 pascal VioMouse;
extern INT2 pascal WindMin;
extern INT2 pascal WindMax;
extern INT2 pascal InsMode;
extern INT2 pascal DosErrNo;
extern INT2 pascal CErrCode;
extern INT2 pascal CErrType;
extern INT2 pascal CErrDrive;
extern INT2 pascal NEvents;
extern INT2 pascal MTextMode;
extern INT2 pascal MouButtons;
/*---------------------------------------------------------------------
- DOS1 routines
---------------------------------------------------------------------*/
VOID FPENTRY Beep( UINT2 Freq, UINT2 Dur );
VOID FPENTRY GetTime( PINT2 Hour, PINT2 Minute,
PINT2 Second, PINT2 Sec100 );
/*---------------------------------------------------------------------
- For FPGetKey.c module
---------------------------------------------------------------------*/
#ifndef IN_GETKEY
extern INT2 FPENTRY GetKey( VOID );
#endif
/*---------------------------------------------------------------------
- Bios and DOS keyboard routines
---------------------------------------------------------------------*/
VOID FPENTRY BiosKbdClr( VOID );
INT2 FPENTRY BiosKbdGetElmt( VOID );
INT2 FPENTRY BiosKbdHit( VOID );
VOID FPENTRY BiosKbdRead( PCHAR Ch );
INT2 FPENTRY BiosKbdStat( VOID );
VOID FPENTRY DosKbdClr( VOID );
INT2 FPENTRY DosKbdGetElmt( VOID );
INT2 FPENTRY DosKbdHit( VOID );
VOID FPENTRY DosKbdRead( PCHAR Ch );
UINT2 FPENTRY bkReadCh( VOID );
UINT2 FPENTRY bkGetKbdStatus( VOID );
UINT2 FPENTRY bkGetKbdFlags( VOID );
VOID FPENTRY bkSetRepeatRate( INT2 Delay, INT2 Repeat );
UINT2 FPENTRY bkPushKeyCodes( INT2 scancode, INT2 ascii );
UINT2 FPENTRY bkeReadCh( VOID );
UINT2 FPENTRY bkeGetKbdStatus( VOID );
UINT2 FPENTRY bkeGetKbdFlags( VOID );
/*---------------------------------------------------------------------
- Bios printer routines
---------------------------------------------------------------------*/
VOID FPENTRY BiosPrtChar( CHAR Ch, INT2 PrtNo );
INT2 FPENTRY BiosPrtInit( INT2 PrtNo );
INT2 FPENTRY BiosPrtStat( INT2 PrtNo );
VOID FPENTRY DosPrtChar( CHAR Ch );
/*---------------------------------------------------------------------
- Video routines
---------------------------------------------------------------------*/
VOID FPENTRY BorderColor( INT Color );
VOID FPENTRY ClrWin( INT x1, INT y1, INT x2, INT y2, INT Attr );
VOID FPENTRY ColorMsg( INT x, INT y, INT Attr, PCHAR Message );
VOID FPENTRY DspMsg( INT x, INT y, PCHAR Message );
VOID FPENTRY EditSt( INT Row,
INT StCol,
INT SpCol,
INT Len,
INT CharCase,
INT FillCh,
INT AutoSkip,
UINT ErrTone,
UINT ErrDur,
PCHAR VCSet,
PCHAR TCSet,
PINT ChOfs,
PINT TE,
PCHAR St );
VOID FPENTRY FillColAttr( INT x, INT y, INT NRows, INT Attr );
VOID FPENTRY FillColCell( INT x, INT y, INT NRows, INT Cell );
VOID FPENTRY FillColChar( INT x, INT y, INT NRows, CHAR Ch );
VOID FPENTRY FillFrameAttr( INT x1, INT y1,
INT x2, INT y2, INT Attr );
VOID FPENTRY FillFrameCell( INT x1, INT y1,
INT x2, INT y2, INT2 Cell );
VOID FPENTRY FillFrameChar( INT x1, INT y1,
INT x2, INT y2, CHAR Ch );
VOID FPENTRY FillRowAttr( INT x, INT y, INT NBytes, INT Attr );
VOID FPENTRY FillRowCell( INT x, INT y, INT NWords, INT2 Cell );
VOID FPENTRY FillRowChar( INT x, INT y, INT NBytes, CHAR Ch );
VOID FPENTRY FrameWin( CHAR UL, CHAR UR,
CHAR LL, CHAR LR,
CHAR Hor, CHAR Ver, INT Attr );
INT2 FPENTRY GetCursorSize( VOID );
VOID FPENTRY GetFrameAttr( INT x1, INT y1,
INT x2, INT y2, PCHAR Buffer );
VOID FPENTRY GetFrameCell( INT x1, INT y1,
INT x2, INT y2, PCHAR Buffer );
VOID FPENTRY GetFrameChar( INT x1, INT y1,
INT x2, INT y2, PCHAR Buffer );
VOID FPENTRY GetScrn( INT x, INT y, INT NWords, PVOID Buffer );
INT FPENTRY GetVideoCols( VOID );
VOID FPENTRY GetVideoInfo( PINT BaseSeg, PINT Cols,
PINT Pg, PINT Mode );
INT FPENTRY GetVideoMode( VOID );
INT FPENTRY GetVideoPage( VOID );
VOID FPENTRY GotoxyAbs( INT x, INT y );
VOID FPENTRY HideCursor( VOID );
VOID FPENTRY InitVideo( INT Mode );
VOID FPENTRY PutFrameAttr( INT x1, INT y1,
INT x2, INT y2, PCHAR Buffer );
VOID FPENTRY PutFrameCell( INT x1, INT y1,
INT x2, INT y2, PCHAR Buffer );
VOID FPENTRY PutFrameChar( INT x1, INT y1,
INT x2, INT y2, PCHAR Buffer );
VOID FPENTRY PutScrn( INT x, INT y, INT NWords, PVOID Buffer );
INT FPENTRY RvsAttr( INT Attr );
VOID FPENTRY ScrollDown( INT x1, INT y1,
INT x2, INT y2,
INT Attr, INT NRows );
VOID FPENTRY ScrollLeft( INT x1, INT y1,
INT x2, INT y2,
INT Attr, INT NCols );
VOID FPENTRY ScrollRight( INT x1, INT y1,
INT x2, INT y2,
INT Attr, INT NCols );
VOID FPENTRY ScrollUp( INT x1, INT y1,
INT x2, INT y2,
INT Attr, INT NRows );
VOID FPENTRY SetCursorSize( INT StScan, INT SpScan );
VOID FPENTRY SetVideoPage( INT PageNo );
VOID FPENTRY ShowCursor( VOID );
VOID FPENTRY VioInit( VOID );
INT FPENTRY WhereXAbs( VOID );
INT FPENTRY WhereYAbs( VOID );
VOID FPENTRY WindowFP( INT x1, INT y1, INT x2, INT y2 );
VOID FPENTRY WriteSt( PCHAR String );
VOID FPENTRY WriteStln( PCHAR String );
/*---------------------------------------------------------------------
- Intel chip routines
---------------------------------------------------------------------*/
UINT FPENTRY GetFP_OFF( PVOID address );
UINT FPENTRY GetFP_SEG( PVOID address );
PVOID FPENTRY MakeFP( UINT seg, UINT ofs );
/*---------------------------------------------------------------------
- DISK routines
---------------------------------------------------------------------*/
VOID FPENTRY CloseFile( INT2 Handle );
VOID FPENTRY CreateFile( PCHAR Path, INT2 Attr, PINT2 Handle );
VOID FPENTRY DosFindFirst( PCHAR Path,
INT2 Attr,
TFindRec FindRec );
VOID FPENTRY DosFindNext( TFindRec FindRec );
UINT4 FPENTRY FSeek( INT Handle, INT Orgin, INT4 Offset );
INT2 FPENTRY GetDrive( VOID );
VOID FPENTRY GetDTA( UINT2 Segment, UINT2 Offset );
INT4 FPENTRY GetFileSize( INT Handle );
INT2 FPENTRY GetNDrvs( VOID );
VOID FPENTRY OpenFile( PCHAR Path, INT2 Attr, PINT2 Handle );
VOID FPENTRY ReadFile( INT2 Handle,
INT2 NBytes,
PCHAR Buffer,
PUINT2 RBytes );
VOID FPENTRY ResetDisk( VOID );
VOID FPENTRY ResetErrCodes( VOID );
VOID FPENTRY RestInt24( VOID );
VOID FPENTRY SetDTA( UINT2 Segment, UINT2 Offset );
VOID FPENTRY SetInt24( VOID );
VOID FPENTRY WriteFile( INT2 Handle,
INT2 NBytes,
PCHAR Buffer,
PUINT2 WBytes );
/*---------------------------------------------------------------------
- BIOS mouse routines
---------------------------------------------------------------------*/
INT2 FPENTRY MButtonPress( INT2 Button,
PINT2 ButPress,
PINT2 x,
PINT2 y );
INT2 FPENTRY MButtonRel( INT2 Button,
PINT2 ButPress,
PINT2 x,
PINT2 y );
VOID FPENTRY MGetPos( PINT2 Button, PINT2 x, PINT2 y );
VOID FPENTRY MGetSpeed( PINT2 HorCnt, PINT2 VerCnt );
VOID FPENTRY MGraphCursor( INT2 XHotSpot, INT2 YHotSpot,
UINT2 CMaskSeg, UINT2 CMaskOfs );
VOID FPENTRY MHideCursor( VOID );
VOID FPENTRY MInitEventHandler( INT2 EventMask );
VOID FPENTRY MPollQue( PINT2 Event, PINT2 ButStat,
PINT2 x, PINT2 y );
INT2 FPENTRY MResetMouse( PINT2 NBut );
VOID FPENTRY MRetQue( PINT2 Event, PINT2 ButStat,
PINT2 x, PINT2 y );
VOID FPENTRY MSetEvent( INT2 Event, INT2 ButStat, INT2 x, INT2 y );
VOID FPENTRY MSetPos( INT2 x, INT2 y );
VOID FPENTRY MSetSpeed( INT2 HorCnt, INT2 VerCnt );
VOID FPENTRY MSetXRange( INT2 Min, INT2 Max );
VOID FPENTRY MSetYRange( INT2 Min, INT2 Max );
VOID FPENTRY MShowCursor( VOID );
VOID FPENTRY MTextCursor( INT2 CType, INT2 SMask, INT2 CMask );
/*---------------------------------------------------------------------
- BIOS video routines
---------------------------------------------------------------------*/
VOID FPENTRY bvSetMode( INT2 Mode, INT2 Clear );
VOID FPENTRY bvSetCurType( INT2 StScan, INT2 SpScan );
VOID FPENTRY bvSetCurPos( INT2 pg, INT2 row, INT2 col );
VOID FPENTRY bvGetCurPos( INT2 pg, PINT2 row, PINT2 col );
VOID FPENTRY bvGetCurType( INT2 pg, PINT2 stscan, PINT2 spscan );
VOID FPENTRY bvSetPage( INT2 pg );
VOID FPENTRY bvScrollDn( INT2 top, INT2 left,
INT2 bottom, INT2 right,
INT2 lines, INT2 attr );
VOID FPENTRY bvScrollUp( INT2 top, INT2 left,
INT2 bottom, INT2 right,
INT2 lines, INT2 attr );
VOID FPENTRY bvReadCell( PINT2 ch, PINT2 attr, INT2 pg );
VOID FPENTRY bvWrtNCell( INT2 ch, INT2 attr,
INT2 count, INT2 pg );
VOID FPENTRY bvWrtNChar( INT2 ch, INT2 count, INT2 pg );
VOID FPENTRY bvSetState0B( INT2 color );
VOID FPENTRY bvWrtPix( INT2 row, INT2 col, INT2 pixval, INT2 pg );
INT2 FPENTRY bvReadPix( INT2 row, INT2 col, INT2 pg );
VOID FPENTRY bvWrtTTYChar( INT2 ch, INT2 pg, INT2 color );
VOID FPENTRY bvGetMode( PINT2 mode, PINT2 cols, PINT2 pg );
VOID FPENTRY bvSetPalReg( INT2 color, INT2 reg );
VOID FPENTRY bvSetBorder( INT2 color );
VOID FPENTRY bvSetPalBorder( CHAR list[17] );
VOID FPENTRY bvSetBlink( INT2 state );
INT2 FPENTRY bvGetPalReg( INT2 reg );
INT2 FPENTRY bvGetBorder( VOID );
VOID FPENTRY bvGetPalBorder( CHAR buf[17] );
VOID FPENTRY bvSetColorReg( UINT2 colorreg, INT2 green,
INT2 blue, INT2 red );
VOID FPENTRY bvSetColorRegBlk( UINT2 startreg,
INT2 regcount,
BYTE colortbl[][3] );
VOID FPENTRY bvSetColorPgMode( INT2 pgstate );
VOID FPENTRY bvSetColorRegPg( INT2 pg );
VOID FPENTRY bvGetColorReg( INT2 colorreg, PINT2 green,
PINT2 blue, PINT2 red );
VOID FPENTRY bvGetColorRegBlk( UINT2 startreg,
INT2 regcount,
BYTE colortbl[][3] );
VOID FPENTRY bvGetColorPgMode( PINT2 colorpg, PINT2 pgmode );
VOID FPENTRY bvSetGrayScale( UINT2 startreg, INT2 regcount );
VOID FPENTRY bvLoadUsrFont00( INT2 pts, INT2 block,
UINT2 chcount, UINT2 startch,
PVOID fonttbl );
VOID FPENTRY bvLoadUsrFont10( INT2 pts, INT2 block,
UINT2 chcount, UINT2 startch,
PVOID fonttbl );
VOID FPENTRY bvLoad8x14Font01( INT2 block );
VOID FPENTRY bvLoad8x14Font11( INT2 block );
VOID FPENTRY bvLoad8x8Font02( INT2 block );
VOID FPENTRY bvLoad8x8Font12( INT2 block );
VOID FPENTRY bvSetBlkSpec( INT2 block );
VOID FPENTRY bvLoad8x16Font04( INT2 block );
VOID FPENTRY bvLoad8x16Font14( INT2 block );
VOID FPENTRY bvSet1FhFontPtr( PVOID fonttbl );
VOID FPENTRY bvSet43hUsrFont( INT2 rows, UINT2 points,
INT2 scnrows, PVOID fonttbl );
VOID FPENTRY bvSet43h8x14Font( INT2 rows, INT2 scnrows );
VOID FPENTRY bvSet43h8x8Font( INT2 rows, INT2 scnrows );
VOID FPENTRY bvSet43h8x16Font( INT2 rows, INT2 scnrows );
VOID FPENTRY bvGetFontInfo( INT2 fontcode, PUINT2 points,
PINT2 scnrows, PVOID fonttbl );
VOID FPENTRY bvGetConfigInfo( PINT2 dsptype, PINT2 egamem,
PINT2 fbits, PINT2 swset );
VOID FPENTRY bvSetAltPrtSc( VOID );
INT2 FPENTRY bvSetScanLines( INT2 scancode );
INT2 FPENTRY bvDefPalLoad( INT2 setting );
INT2 FPENTRY bvVioAccess( INT2 setting );
INT2 FPENTRY bvGrayScaleSum( INT2 setting );
INT2 FPENTRY bvCurEmulation( INT2 setting );
VOID FPENTRY bvSwDsp( INT2 setting, PCHAR buffer );
INT2 FPENTRY bvScnRefresh( INT2 setting );
VOID FPENTRY bvWrtTTYStr( INT2 mode, INT2 row, INT2 col,
INT2 len, INT2 pg, INT2 attr,
PCHAR st );
INT2 FPENTRY bvGetDspCode( INT2 *ActiveDspCode, INT2 *InactiveDspCode );
/*---------------------------------------------------------------------
- DOS routines
---------------------------------------------------------------------*/
VOID FPENTRY dDiskReset( VOID );
INT2 FPENTRY dSelectDisk( INT2 Drive );
INT2 FPENTRY dGetCurrentDisk();
VOID FPENTRY dSetDta( UINT2 Segment, UINT2 Offset );
INT FPENTRY dGetDriveData( INT2 Drive,
PUINT2 Sectors,
PUINT2 MediaSeg,
PUINT2 MediaOfs,
PUINT2 SectorSize,
PUINT2 Clusters );
VOID FPENTRY dSetIntVec( UINT2 dIntno, UINT2 dSeg, UINT2 dOfs );
VOID FPENTRY dCreateNewPsp( UINT2 Segment );
VOID FPENTRY dGetDate( PINT2 Month,
PINT2 Day,
PINT2 Year,
PINT2 DayOfWk );
INT FPENTRY dSetDate( INT Month, INT Day, INT Year );
VOID FPENTRY dGetTime( PINT2 Hour,
PINT2 Minute,
PINT2 Seconds,
PINT2 Hundredths );
VOID FPENTRY dSetTime( INT2 Hour, INT2 Minute,
INT2 Seconds, INT2 Hundredths );
VOID FPENTRY dSetVerifyFlag( INT2 VerifyOpt );
VOID FPENTRY dGetDta( PUINT2 Segment, PUINT2 Offset );
VOID FPENTRY dGetVersion( PINT2 Major, PINT2 Minor );
INT FPENTRY dGetBreakStatus( VOID );
VOID FPENTRY dSetBreakFlag( INT flag );
VOID FPENTRY dGetBusyFlag( PUINT2 dSeg, PUINT2 dOfs );
VOID FPENTRY dGetIntVec( UINT2 dIntno, PUINT2 dSeg, PUINT2 dOfs );
//void (_cdecl _interrupt _far * _cdecl _dos_getvect(unsigned))();
INT FPENTRY dGetDrvAllocInfo( UINT Drive,
PUINT Sectors,
PUINT AvailClusters,
PUINT BytesInSector,
PUINT TotalClusters );
INT FPENTRY dMkDir( PCHAR Path );
INT FPENTRY dRmDir( PCHAR Path );
INT FPENTRY dChDir( PCHAR Path );
INT FPENTRY dCreateFile( PCHAR Path, INT2 Attr, PINT2 Handle );
INT FPENTRY dOpenFile( PCHAR Path, INT2 Mode, PINT2 Handle );
INT FPENTRY dCloseFile( PCHAR Path, INT2 Mode, PINT2 Handle );
INT FPENTRY dReadFile( INT Handle, UINT2 NBytes,
PVOID Buffer, PUINT2 BytesRead );
INT FPENTRY dWriteFile( INT Handle, UINT NBytes,
PVOID Buffer, PUINT BytesWritten );
INT FPENTRY dDelFile( PCHAR FileSpec );
INT FPENTRY dSetFilePos( INT2 Handle, INT Method, PINT4 Ofs );
INT FPENTRY dGetFileAttr( PCHAR FileSpec, PINT2 Attr );
INT FPENTRY dSetFileAttr( PCHAR FileSpec, INT2 Attr );
#ifdef __cplusplus
}
#endif
#endif